package com.suning.sawp.member.job;

import java.text.ParseException;

import org.springframework.beans.factory.annotation.Autowired;

import com.suning.sawp.intf.taskCard.IndexTaskCardService;
import com.suning.sawp.member.service.ActivityService;
import com.suning.sawp.member.service.MemCustomerService;
import com.suning.sawp.member.service.MemExpandConversionService;
import com.suning.sawp.po.bi.BIIndexTaskCardEntity;

/**
 * 我的潜客提醒卡片定时任务 〈一句话功能简述〉<br>
 * 〈功能详细描述〉
 *
 * @author 15050519
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本] （可选）
 */
public class MemCustomerCardRemindJob {

	/**
	 * 任务卡片服务
	 */
	@Autowired
	IndexTaskCardService indexTaskCardService;

	/**
	 * 客户服务
	 */
	@Autowired
	MemCustomerService memCustomerService;

	/**
	 * 拓展销售数据转换服务
	 */
	@Autowired
	MemExpandConversionService memExpandConversionService;

	@Autowired
	ActivityService activityService;

	/**
	 * 处理主推任务卡片消息<br>
	 * 功能描述: <br>
	 * 1. 删除所有潜客提醒的任务卡片 2. 插入所有的7天内存在预计购物客户的潜客卡片
	 *
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	public void processMainPushCardJob() {
		// 删除所有的潜客提醒卡片
		indexTaskCardService.delTaskCard("", BIIndexTaskCardEntity.BizKey.ORDER_BY);

		// 插入潜客提醒卡片
		memCustomerService.dealPotentialCustomer();
	}

	/**
	 * 
	 * 功能描述: <br>
	 * 〈功能详细描述〉
	 *
	 * @param endDate
	 * @throws ParseException
	 * @see [相关类/方法](可选)
	 * @since [产品/模块版本](可选)
	 */
	public void processExpandConversionDataJob(String endDate) throws ParseException {
		memExpandConversionService.processExpandConversionData(endDate);

	}

	/**
	 * 此定时任务有2个功能<br/>
	 * 1、定时拉取活动考试开始日期--->考核结束后1天之间的非会员客户，查询其是否是会员了，如果是，则更新其会员编码；<br/>
	 * 2、删除活动都结束1个月的mem_sale表中的数据
	 * 
	 */
	public void preocessExpiredActivity() {
		// 处理下非会员，捞下他们是否是会员了,如果是，更新下mem_customer_detail
		activityService.processCustomerNo();
		// 考核已结束超过1个月的的活动，删除mem_sale表的数据（mem_sale_h里会一直有的）
		activityService.preocessExpiredActivity();
	}

	/**
	 * 处理老客户转到新表的功能;定时导数据功能,不需要一直跑，跑一次就可以，提供了http调用
	 * activityController.processOldCust<br/>
	 * 但是如果想半夜定时跑，用此方法
	 *
	 * @param createTime
	 *            （非必填，为空时表示转移所有的老客户）；转移createTime之后的客户
	 */
	public void processOldCust(String createTime) {
		activityService.processOldCust(createTime);
	}
}
